CSS animatie - keyframes
Beschrijving
Een enkel keyframe definieert een punt tijdens de animatie waarvoor een toestand bekend is, bijvoorbeeld:
- op 0% voltooid, de achtergrondkleur is blauw
- op 50% voltooid, de achtergrondkleur is groen op
- 100% voltooid, de achtergrondkleur is rood
Elke @keyframes bestaat uit:
- een naam die de animatie beschrijft bijvoorbeeld stuiteren;
- de stadia van de animatie; elk stadium van de animatie wordt weergegeven als een percentage. 0% betekent de begin toestand van de animatie, 100% betekent het eindstadium van de animatie;
- Meerdere tussentoestanden kan worden toegevoegd tussen.
- CSS stijlregel waarin je met CSS-eigenschappen elk stadium van van de animatie-tijdlijn kan definiëren;
Het @keyframes bestaat uit vijf fasen. In de eerste fase (0%), wordt het element geschaald op een 1/3 en ondoorzichtig gemaakt. In de tweede fase (25%) wordt het element geschaald op een 1/7 en half doorzichtig gemaakt. In de derde fase (50%) wordt het element op zijn natuurlijke grootte geschaald en is de dekking ervan volledig. In de vierde fase wordt teruggekeerd naar fase 2 en in de vijfde en laatste fase wordt de eerste fase herhaald.
@keyframes scaleIn {
0% {
-webkit-opacity: 0;
-webkit-transform: scale(.3);
opacity: 0;
transform: scale(.3);
}
25% {
-webkit-opacity: 0.5;
-webkit-transform: scale(.7);
opacity: 0.5;
transform: scale(.7);
}
50% {
-webkit-opacity: 1;
-webkit-transform: scale(1);
opacity: 1;
transform: scale(1);
}
75% {
-webkit-opacity: 0.5;
-webkit-transform: scale(.7);
opacity: 0.5;
transform: scale(.7);
}
100% {
-webkit-opacity: 0;
-webkit-transform: scale(.3);
opacity: 0;
transform: scale(.3);
}
}
In het voorbeeld hieronder gebruiken we ook al animatie eigenschappen alhoewel we die nog niet gezien hebben. Concentreer je nu op het @keyframes gedeelte.
Alleen CSS eigenschappen met discrete waarden kunnen tussen keyframes veranderen. O.a. eigenschappen van de lay-out (breedte, hoogte, opvulling, marges, borders), positionele eigenschappen (links, rechts, boven, onder), transformaties, tekengrootten, kleuren, achtergrondkleuren en opaciteit.
Eigenschappen, die gebruik maken van een combinatie sleutelwoord-waarde zoals display: none; visibility: hidden; or height: auto; kunnen niet geanimeerd worden.
Bronnen
- CSS3 Animation Property Basics
- Vincent Tantardini, Playing with CSS3 Animations, 28/03/2014
- Joni Trythall, Responsive CSS Keyframe Animations, March 20, 2014